package com.duoec.magichour.mapper;

import com.duoec.magichour.core.BaseMapper;
import com.duoec.magichour.pojo.UserFollow;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface UserFollowMapper extends BaseMapper<UserFollow, Long> {
    /**
     * 判断某个ID是否存在
     *
     * @param id ID
     * @return
     */
    boolean exists(String id);

    /**
     * 获取用户{userId}关注的用户列表
     *
     * @param userId 用户ID
     * @param skip   跳过记录数
     * @param limit  最多返回记录数
     * @return
     */
    List<UserFollow> getFollowedUserList(@Param("userId") long userId, @Param("skip") int skip, @Param("limit") int limit);

    /**
     * 查询{followUserIds}中，被{userId}关注了的用户ID列表
     *
     * @param userId
     * @param followUserIds
     * @return
     */
    Set<Long> getFollowedUsers(@Param("userId") long userId, @Param("followUserIds") List<Long> followUserIds);

    /**
     * 获取用户{userId}的粉丝列表
     *
     * @param userId 用户ID
     * @param skip   跳过记录数
     * @param limit  最多返回记录数
     * @return
     */
    List<UserFollow> getFansList(@Param("userId") long userId, @Param("skip") int skip, @Param("limit") int limit);
}